/*
 * Pantalla.cpp
 *
 *  Created on: 24/03/2013
 *      Author: Juliansci
 */

#include "Pantalla.h"


Pantalla::Pantalla(int posInicialPersonaje_x,int posInicialPersonaje_y) {
	this->scroll_x = 0;
	this->scroll_y = 0;
	alto = ALTO_PANTALLA;
	ancho = ANCHO_PANTALLA;
	this->posReferencia_X = posInicialPersonaje_x;
	this->posReferencia_Y = posInicialPersonaje_y;
}

int Pantalla::getAlto() const {
	return this->alto;
}


int Pantalla::getAncho() const {
	return this->ancho;
}

void Pantalla::setAlto(int alto){
	this->alto = alto;
}

void Pantalla::setAncho(int ancho){
	this->ancho = ancho;
}

int Pantalla::getPosicion_X() const{
	return this->posReferencia_X;
}

int Pantalla::getPosicion_Y() const{
	return this->posReferencia_Y;
}

void Pantalla::setPosicion_X(int x){
	this->posReferencia_X = x;
}

void Pantalla::setPosicion_Y(int y){
	this->posReferencia_Y = y;
}

void Pantalla::actualizarPosPantalla(int pos_x, int pos_y) {

	/** mover scroll tanto de X como de Y **/
	if (pos_x < MARGEN_SCROLL){
		this->scroll_x -= VELOCIDAD_SCROLL;
	}
	if (pos_x > this->getAncho() - MARGEN_SCROLL){
		this->scroll_x += VELOCIDAD_SCROLL;
	}
	if (pos_y < MARGEN_SCROLL){
		this->scroll_y -= VELOCIDAD_SCROLL;
	}
	if (pos_y > this->getAlto() - MARGEN_SCROLL){
		this->scroll_y += VELOCIDAD_SCROLL;
	}

	/*if (pos_x < this->getPosicion_X() + this->getScrollX()) {
		int nueva_x = pos_x - this->getScrollX();
		this->setPosicion_X(nueva_x);
	}
	else if (pos_x > ( this->getPosicion_X() + this->getAncho() ) - this->getScrollX()) {
		int nueva_x = ( pos_x + this->getScrollX() ) - this->getAncho();
		this->setPosicion_X(nueva_x);
	}

	if (pos_y < this->getPosicion_Y() + this->getScrollY()) {
		int nueva_y = pos_y - this->getScrollY();
		this->setPosicion_Y(nueva_y);
	}
	else if (pos_y > ( this->getPosicion_Y() + this->getAlto() ) - this->getScrollY()) {
		int nueva_y = ( pos_y + this->getScrollY() ) - this->getAlto();
		this->setPosicion_Y(nueva_y);
	}

	Casos especiales de Scroll

	if ( this->getPosicion_X() < 0 ) {
		this->setPosicion_X(0);

	} else if ( this->getPosicion_X() + this->ancho > anchoNivel ) {
		int nueva_x = anchoNivel - this->getAncho();
		this->setPosicion_X(nueva_x);
	}

	if ( this->getPosicion_Y() < 0 ) {
		this->setPosicion_Y(0);

	} else if ( this->getPosicion_Y()  + this->ancho > anchoNivel ) {
		int nueva_y = anchoNivel - this->getAlto();
		this->setPosicion_X(nueva_y);
	}*/
}



Pantalla::~Pantalla() {
	// TODO Auto-generated destructor stub
}

